#!/bin/bash

echo ""
echo "████████████████████████████████████████████████████████"
echo "█                                                      █"
echo "█        📱💻 双向文件传输工具 - 便携版                █"
echo "█                                                      █"
echo "████████████████████████████████████████████████████████"
echo ""

# 检查Node.js是否已安装
if command -v node &> /dev/null; then
    NODE_VERSION=$(node --version)
    echo "✅ 检测到系统Node.js环境: $NODE_VERSION"
    NODE_PATH="node"
    NPM_PATH="npm"
    echo "🔧 使用系统Node.js环境"
else
    echo "❌ 未检测到Node.js环境"
    echo ""
    echo "🔧 正在为您自动配置便携式Node.js环境..."
    echo "📥 这可能需要几分钟时间，请耐心等待..."
    echo ""
    
    # 创建便携式目录
    mkdir -p portable-node
    
    # 检测系统架构
    ARCH=$(uname -m)
    OS=$(uname -s)
    
    if [[ "$OS" == "Darwin" ]]; then
        if [[ "$ARCH" == "arm64" ]]; then
            NODE_URL="https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-arm64.tar.gz"
            FILE_EXT="tar.gz"
        else
            NODE_URL="https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-x64.tar.gz"
            FILE_EXT="tar.gz"
        fi
    else
        NODE_URL="https://nodejs.org/dist/v18.19.0/node-v18.19.0-linux-x64.tar.xz"
        FILE_EXT="tar.xz"
    fi
    
    echo "📦 正在下载Node.js便携版..."
    curl -L "$NODE_URL" -o "portable-node/node.$FILE_EXT"
    
    if [[ -f "portable-node/node.$FILE_EXT" ]]; then
        echo "📦 正在解压Node.js..."
        cd portable-node
        
        if [[ "$FILE_EXT" == "tar.gz" ]]; then
            tar -xzf "node.$FILE_EXT"
        else
            tar -xJf "node.$FILE_EXT"
        fi
        
        mv node-v18.19.0-* node
        rm "node.$FILE_EXT"
        cd ..
        echo "✅ Node.js便携版配置完成"
        
        NODE_PATH="./portable-node/node/bin/node"
        NPM_PATH="./portable-node/node/bin/npm"
        echo "🔧 使用便携式Node.js环境"
    else
        echo "❌ Node.js下载失败，请检查网络连接或手动安装Node.js"
        exit 1
    fi
fi

echo ""
echo "📦 检查项目依赖..."
if [[ ! -d "node_modules" ]]; then
    echo "📥 正在安装依赖包..."
    $NPM_PATH install --silent
    if [[ $? -ne 0 ]]; then
        echo "❌ 依赖安装失败，请检查网络连接"
        exit 1
    fi
    echo "✅ 依赖安装完成"
fi

echo ""
echo "🚀 正在启动服务..."
echo ""
$NODE_PATH start.js

echo ""
echo "📱 服务已停止"
